package com.wsoft.hr.pm.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.github.pagehelper.PageInfo;
import com.wsoft.hr.pm.entity.HrPmGradeEntity;
import com.wsoft.hr.pm.query.grade.*;
import com.wsoft.hr.pm.vo.grade.GradeStatisticsVO;


/**
 *
 * @Author Z001
 * @Date 2025-03-01 08:35:23
 */
public interface IHrPmGradeService extends IService<HrPmGradeEntity> {


    /**
     * 考核评级-分页查询
     * @param query
     * @return PageInfo
     */
    PageInfo<HrPmGradeEntity> listHrPmGrade(HrPmGradeListQuery query);


    /**
     * 考核评级-获取详情-列表信息
     * @param id
     * @return
     */
    PageInfo getMemberGrade(HrPmGradeInfoQuery id);


    /**
     * 考核评级-获取详情-统计信息
     * @param gradeOrgId
     * @return
     */
    GradeStatisticsVO getGradeStatistics(Long gradeOrgId);

    /**
     * 新增-考核评级
     * @param query
     * @return
     */
    boolean insertHrPmGrade(HrPmGradeInsertQuery query);

    /**
     * 启用
     * @param query
     * @return
     */
    boolean enableGrade(HrPmGradeEnableQuery query);


    /**
     * 跟新考核评级信息
     * @param query
     * @return
     */
    boolean updateHrPmGrade(HrPmGradeUpdateQuery query);

    /**
     * 更新-用户考核评级
     * @param query
     * @return
     */
    boolean updateMemberGrade(HrPmMemberGradeUpdateQuery query);

    /**
     *  删除-考核评级
     * @param id
     * @return
     */
    boolean delete(Long id);

    /**
     * 提交
     * @param query
     * @return
     */
    boolean submit(HrPmMemberGradeUpdateQuery query);

    /**
     * 工作台 列表查询
     * @param query
     * @return
     */
    PageInfo<HrPmGradeEntity> workList(HrPmGradeListQuery query);

    /**
     * 工作台获取详情
     * @param id
     * @return
     */
    HrPmGradeEntity getInfo(Long id);

    /**
     * 工作台删除
     * @param id
     * @return
     */
    boolean workDelete(Long id);
}
